<?php

//Kollar om strängar har rätt format
//krypterar lösenord
class Validator {
	
	//Krypterar lösenord.
	public function doEncode($password)
	{
		$encodedPassword = md5($password);
		return $encodedPassword;
	}
	
	//Kollar om email-adressen är giltig
	public function validateEmail($email)
    {
		if(filter_var($email, FILTER_VALIDATE_EMAIL))
		{ 
			return true;
		}
		return false;
    }
	
	//Användarnamnet får innehålla _a-zA-Z0-9 och minst 5 tecken max 15
	public function validateUsername($username)
	{
		$trimusername = trim($username);
		$pattern = "/^[_a-zA-Z0-9]{5,15}$/";
		
		if(preg_match($pattern, $trimusername))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	//Lösenord måste innehålla minst en siffra, minst en gemen, minst en versal och bestå av minst 6 tecken max 10 tecken
 	public function validatePassword($passWord)
	{
		$trimPassword = trim($passWord);
		$pattern = "/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,10}$/";
		
		if (preg_match($pattern, $trimPassword))
		{
			//var_dump("validator 47: " . $passWord);	
			return true;
		}
		else
		{
			return false;
		}		
	}
	//Undersöker om om kontrollsiffran i personnumret stämmer
 	public function CheckControlNumber ($controlNumber)
	{
		if(strlen($controlNumber) !== 10 || !is_int($controlNumber)) 
		{
			return false;		 
		}
		 
		$num = 2;
		$sum = 0;
		 
		for($i = 0; $i < 9; $i++) 
		{
			$tmp = $controlNumber[$i] * $num;
		 			
			if($tmp > 9){
				$sum += 1 + ($tmp % 10);
			}
			else{
				$sum += $tmp;
			}
			if($num == 2){
				$num = 1;
			}
			else{
				$num = 2;
			}
		 
		}
		if((($sum + $securityNumber[9]) % 10) == 0){
			return TRUE;
		}
	}
} 
?>